/*
 * @Description: 优惠券
 * @Date: 2022-12-10 09:39:03
 * @Author: lizhiqiang
 */
import { get, post, fileDownload } from "@/utils/request";
/**
 * 创建优惠券批次
 * @param params 
 * @returns 
 */
/**
 * BatchCreateRequest，优惠券创建请求
 */
type Create =  {
    /**
     * 每张优惠券冲抵金额
     */
    amount?: number;
    /**
     * 是否在app上展示
     */
    appShow?: boolean;
    /**
     * 满减金额
     */
    atAmount?: number;
    /**
     * 生效时间（strategy为0时不能为空）
     */
    beginTime?: Date;
    /**
     * 创建人ID（后端获取，前端不传）
     */
    createId?: string;
    /**
     * 创建人（后端获取，前端不传）
     */
    createName?: string;
    /**
     * 有效天数（strategy为1时不能为空）
     */
    days?: number;
    /**
     * 使用说明
     */
    description?: string;
    /**
     * 失效时间（strategy为0时不能为空）
     */
    endTime?: Date;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 适用场景ID
     */
    paySrc?: number;
    /**
     * 每人可领取张数
     */
    personCount?: number;
    /**
     * 结算类型 0:平台结算 , 1:商家结算
     */
    settleType?: number;
    /**
     * 生成策略：0固定时间，1领券后有效天数
     */
    strategy?: number;
    /**
     * 目标跳转地址
     */
    targetUrl?: string;
    /**
     * 优惠券副标题
     */
    title?: string;
    /**
     * 发放总数
     */
    totalCount?: number;
    /**
     * 券类型：1优惠券，2满减券
     */
    type?: number;
}

export const Create = ( params: Create ) => {
    return post( "/cdwl-coupon/coupon/create", params )
}
/**
 * 优惠券批次详情
 * @param params 
 * @returns 
 */
type Detail =  {
    /**
     * 开始时间
     */
    beginTime?: Date;
    /**
     * 创建人ID
     */
    createId?: string;
    /**
     * 结束时间
     */
    endTime?: Date;
    /**
     * 优惠券ID
     */
    id?: string;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 页码数
     */
    pageNum?: number;
    /**
     * 每页数量
     */
    pageSize?: number;
    /**
     * 业务场景：8百千万活动，9百千万场地
     */
    paySrc?: number;
    /**
     * 商铺ID
     */
    shopId?: string;
    /**
     * 优惠券批次编号
     */
    sn?: string;
    /**
     * 业务场景名称
     */
    spaceName?: string;
    /**
     * 使用状态：0未使用，1已使用，2已过期
     */
    state?: number;
}
export const Detail = ( params: Detail ) => {
    return post( "/cdwl-coupon/coupon/detail", params )
}
/**
 * 优惠券批次详情导出
 * @param params 
 * @returns 
 */
type DetailExport =  {
    /**
     * 开始时间
     */
    beginTime?: Date;
    /**
     * 创建人ID
     */
    createId?: string;
    /**
     * 结束时间
     */
    endTime?: Date;
    /**
     * 优惠券ID
     */
    id?: string;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 页码数
     */
    pageNum?: number;
    /**
     * 每页数量
     */
    pageSize?: number;
    /**
     * 业务场景：8百千万活动，9百千万场地
     */
    paySrc?: number;
    /**
     * 商铺ID
     */
    shopId?: string;
    /**
     * 优惠券批次编号
     */
    sn?: string;
    /**
     * 业务场景名称
     */
    spaceName?: string;
    /**
     * 使用状态：0未使用，1已使用，2已过期
     */
    state?: number;
}
export const DetailExport = ( params: any, fileName: string ) => {
    return fileDownload( "/cdwl-coupon/detail/export", params, fileName )
}
/**
 * 删除优惠券批次
 * @param params 
 * @returns 
 */
export const deleteCouponBatch = ( params: {
    sn:string
} ) => {
    return post( '/cdwl-coupon/couponBatch/option/delete', params )
}
/**
 * 优惠券批次发放
 * @param params 
 * @returns 
 */
type Distribute ={
    file:File,
    sn:string
}
export const Distribute = ( params: any ) => {
    return post( '/cdwl-coupon/coupon/distribute', params )
}
/**
 * 优惠券批次发放列表
 * @param params 
 * @returns 
 */
/**
 * BatchDistributeListRequest，优惠券批次发放查询
 */
type DistributeList = {
    /**
     * 开始时间
     */
    beginTime?: Date;
    /**
     * 结束时间
     */
    endTime?: Date;
    /**
     * 每页条数
     */
    limit?: number;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 页数
     */
    page?: number;
    /**
     * 优惠券场景
     */
    paySrc?: number;
    /**
     * 批次sn
     */
    sn?: string;
}
export const DistributeList = ( params: DistributeList ) => {
    return post( '/cdwl-coupon/coupon/distributeList', params )
}
/**
 * 查询优惠券详情
 * @param params 
 * @returns 
 */
type Item ={
    id:string
}
export const GetItem = ( id: string ) => {
    return post(`/cdwl-coupon/coupon/info/${id}`)
}
/**
 * 查询优惠券详情
 * @param params 
 * @returns 
 */
export const Update = ( params: Item ) => {
    return post( '/cdwl-coupon/coupon/update', params )
}
/**
 * 优惠券批次查询
 * @param params 
 * @returns 
 */
/**
 * BatchListRequest，优惠券批次列表查询请求
 */
type List= {
    /**
     * 账户ID
     */
    accountId?: string;
    /**
     * 创建组织机构名称
     */
    createName?: string;
    /**
     * 每页条数
     */
    limit?: number;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 页数
     */
    page?: number;
    /**
     * 优惠券场景
     */
    paySrc?: number;
    /**
     * 批次状态：0待投放，1投放中，2投放结束，3注销
     */
    state?: number;
}
export const List = ( params: List ) => {
    return post( '/cdwl-coupon/coupon/list', params )
}
/**
 * 优惠券批次查询
 * @param params 
 * @returns 
 */
type ListAll = {
    /**
     * 账户ID
     */
    accountId?: string;
    /**
     * 创建组织机构名称
     */
    createName?: string;
    /**
     * 每页条数
     */
    limit?: number;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 页数
     */
    page?: number;
    /**
     * 优惠券场景
     */
    paySrc?: number;
    /**
     * 批次状态：0待投放，1投放中，2投放结束，3注销
     */
    state?: number;
}
export const ListAll = ( params: ListAll ) => {
    return post( '/cdwl-coupon/coupon/list/all', params )
}
/**
 * 优惠券批次查询导出
 * @param params 
 * @returns 
 */
type ListExport ={
    /**
     * 账户ID
     */
    accountId?: string;
    /**
     * 创建组织机构名称
     */
    createName?: string;
    /**
     * 每页条数
     */
    limit?: number;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 页数
     */
    page?: number;
    /**
     * 优惠券场景
     */
    paySrc?: number;
    /**
     * 批次状态：0待投放，1投放中，2投放结束，3注销
     */
    state?: number;
}
export const ListExport = ( params: ListExport, fileName: string ) => {
    return fileDownload( "/cdwl-coupon/coupon/list/export", params, fileName )
}
/**
 * 支付渠道列表
 * @param params 
 * @returns 
 */
export const PaySrcList = ( params: any ) => {
    return post( '/cdwl-coupon/coupon/paySrcList', params )
}
/**
 * 优惠券百分比统计

 * @param params 
 * @returns 
 */
type Percent ={
    /**
     * 账户ID
     */
    accountId?: string;
    /**
     * 创建组织机构名称
     */
    createName?: string;
    /**
     * 优惠券名称
     */
    name?: string;
    /**
     * 优惠券批次编号
     */
    sn?: string;
    /**
     * 批次状态：0待投放，1投放中，2投放结束，3注销
     */
    state?: number;
}
export const Percent = ( params:Percent) => {
    return post( "/cdwl-coupon/coupon/percent", params )
}
/**
 * 回收优惠券
 * @param params 
 * @returns 
 */
type Recover = {
    recoverCount: number;
    sn: string
}
export const Recover = ( params: Recover ) => {
    return post( '/cdwl-coupon/coupon/recover', params )
}

// 优惠券发放
export const RC =(params:any)=>{
    return post("/cdwl-coupon/receiveCouponInfo",params)
}

// 优惠券批次 - 提审
export const referralCouponBatch =(params: any)=>{
    return post("/cdwl-coupon/couponBatch/option/submitAudit",params)
}

// 优惠券批次 - 审核
export const auditCouponBatch =(params: any)=>{
    return post("/cdwl-coupon/couponBatch/option/audit",params)
}

// 优惠券批次 - 详情
export const getCouponBatchDetail =(sn: string)=>{
    return post(`/cdwl-coupon/coupon/infoBySn/${sn}`, null)
}

// 优惠券批次 - 详情 - 日志
export const getCouponBatchDetailLog =(params: any)=>{
    return post(`cdwl-coupon/couponBatchLog/queryList`, params)
}

//通过merchants获得商家信息
export const getmerChantsInfo = (merchants: string)=>{
    return get(`cdwl-merchant/inner/merchantinfo/infoNoCache/${merchants}`,null)
}

// 批量导出优惠券批次 - 详情
export const batchExportAPI = ( params: ListExport, fileName: string ) => {
    return fileDownload( "/cdwl-coupon/coupon/list/batchExport", params, fileName )
}